package com.lzq.springboot_lzq.pojo;

import org.springframework.http.HttpStatus;

/**
 * 通用响应消息类，用于封装API返回的结果。
 *
 * @param <T> 泛型类型，表示响应数据的类型
 */
public class ResponseMessage<T> {
    private String message;
    private T data;
    private int code;

    /**
     * 构造函数，用于初始化响应消息对象。
     *
     * @param message 响应消息内容
     * @param data    响应数据
     * @param code    响应状态码
     */
    public ResponseMessage(String message, T data, int code) {
        this.message = message;
        this.data = data;
        this.code = code;
    }

    // 创建一个成功的响应消息。
    public static <T> ResponseMessage<T> success(T data){
        return new ResponseMessage<T>("SUCCESS",data, HttpStatus.OK.value());
    }
    // 创建一个失败的响应消息。
    public static <T> ResponseMessage<T> error(T data){
        return new ResponseMessage<T>("ERROR",data, HttpStatus.NOT_FOUND.value());
    }

    public int getCode() {
        return code;
    }
    public void setCode(int code) {
        this.code = code;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public T getData() {
        return data;
    }
    public void setData(T data) {
        this.data = data;
    }

}
